import {Card, Form, Input, Button, message} from 'antd'
import {useNavigate} from "react-router-dom";
import {useDispatch} from "react-redux";
import './index.scss'
import logo from '@/assets/logo.png'
import {setToken} from "@/store/modules/user";
import {login} from "@/api/user";

const Login = () => {
    const dispatch = useDispatch()
    const navigate = useNavigate()
    const validMobile = [
        {
            required: true,
            message: '请输入手机号'
        },
        {
            pattern: /^1[3-9]\d{9}$/,
            message: '请输入正确的手机号'
        }
    ]
    const validCode = [
        {
            required: true,
            message: '请输入验证码'
        }
    ]
    const onFinish = async value => {
        dispatch(async dispatch => {
            // code 246810
            const {data: { token }} = await login({ ...value, code: '246810' })
            dispatch(setToken(token))
            navigate('/')
            message.success('登录成功')
        })
    }
    return (
        <div className="login">
            <Card className="login-container">
                <img className="login-logo" src={logo} alt="" />
                {/* 登录表单 */}
                <Form validateTrigger="onBlur" onFinish={onFinish}>
                    <Form.Item name="mobile" rules={validMobile}>
                        <Input size="large" placeholder="请输入手机号" />
                    </Form.Item>
                    <Form.Item name="code" rules={validCode}>
                        <Input size="large" placeholder="请输入验证码" />
                    </Form.Item>
                    <Form.Item>
                        <Button type="primary" htmlType="submit" size="large" block>
                            登录
                        </Button>
                    </Form.Item>
                </Form>
            </Card>
        </div>
    )
}

export default Login
